factory design pattern interview questions